Hazelcast ক্লাস্টার সেটআপ একটি ডিস্ট্রিবিউটেড সিস্টেম তৈরি করার প্রক্রিয়া যেখানে একাধিক নোড একসাথে কাজ করে, ডেটা এবং কাজ ভাগ করে। ক্লাস্টারটি সহজে স্কেল করা যায় এবং ফাল্ট টলারেন্স নিশ্চিত করে, কারণ নোড ব্যর্থ হলে ডেটা অন্য নোডে পুনঃরুদ্ধার হয়। Hazelcast ক্লাস্টার সেটআপের মাধ্যমে আপনি একাধিক নোডের মধ্যে ডেটা ভাগ করতে এবং স্কেলেবিলিটি এবং ফাল্ট টলারেন্স নিশ্চিত করতে পারবেন।
এখানে ধাপে ধাপে Hazelcast ক্লাস্টার সেটআপের প্রক্রিয়া ব্যাখ্যা করা হয়েছে:
Hazelcast ক্লাস্টার তৈরি করার জন্য প্রথমে Hazelcast ইনস্টল করা প্রয়োজন। এটি বিভিন্ন প্ল্যাটফর্মে ইনস্টল করা যায় (Windows, Linux, MacOS)।
Hazelcast unzip:
ডাউনলোড করা ফাইলটি আনজিপ করুন।
unzip hazelcast-<version>.zip
hazelcast.xml
বা hazelcast.yaml
) এ ক্লাস্টারের সেটিংস কনফিগার করা যেতে পারে।Hazelcast ক্লাস্টার সেটআপের জন্য দুটি মূল উপায় আছে:
<hazelcast>
<network>
<join>
<multicast enabled="true">
<group-name>dev</group-name>
<group-password>hazelcast</group-password>
</multicast>
</join>
</network>
</hazelcast>
<hazelcast>
<network>
<join>
<tcp-ip enabled="true">
<member>192.168.1.2</member>
<member>192.168.1.3</member>
</tcp-ip>
</join>
</network>
</hazelcast>
Hazelcast ক্লাস্টার তৈরি করতে আপনাকে কমপক্ষে দুটি নোড শুরু করতে হবে। আপনাকে প্রথমে hazelcast.jar ফাইল ব্যবহার করে Hazelcast সার্ভার চালাতে হবে।
Hazelcast নোড চালানোর জন্য, আপনি নিচের কমান্ড ব্যবহার করতে পারেন (যেকোনো সিস্টেমের জন্য):
java -cp hazelcast-<version>.jar com.hazelcast.core.server.HazelcastServer
এটি প্রথম নোডের জন্য ক্লাস্টার শুরু করবে। তারপর আপনি একই প্রক্রিয়া অনুসরণ করে দ্বিতীয় নোড চালাতে পারবেন। আপনি যদি TCP/IP কনফিগারেশন ব্যবহার করেন, তবে সুনির্দিষ্ট IP অ্যাড্রেসগুলি সেট করতে হবে।
Hazelcast Management Center একটি UI টুল, যা ক্লাস্টার মনিটরিং এবং ব্যবস্থাপনা সহজ করে। এটি আপনাকে Hazelcast ক্লাস্টারের কার্যক্ষমতা, নোড অবস্থা, ডেটা, এবং অন্যান্য সম্পদ পর্যবেক্ষণ করতে সাহায্য করে।
ডাউনলোড করা ফাইলটি আনজিপ করুন এবং কমান্ড লাইন থেকে চালান:
java -jar hazelcast-management-center-<version>.jar
http://localhost:8080
এখানে আপনি ক্লাস্টার স্বাস্থ্য, নোড, ডেটা, এবং অন্যান্য মেট্রিক্স দেখতে পারবেন।
Hazelcast ক্লাস্টার পরিচালনা করতে নোড এবং ক্লাস্টার কমান্ড ব্যবহার করা যায়:
Hazelcast ক্লাস্টার স্কেল করা খুব সহজ। নতুন নোড ক্লাস্টারে যোগ করতে আপনি নোড চালিয়ে নতুন সদস্য যুক্ত করতে পারেন, এবং Hazelcast স্বয়ংক্রিয়ভাবে ক্লাস্টারের মধ্যে ডেটা পুনঃবণ্টন করবে।
Hazelcast ক্লাস্টার সেটআপ প্রক্রিয়া বেশ সহজ, তবে এটি সঠিক কনফিগারেশন এবং নির্ভরযোগ্য যোগাযোগ ব্যবস্থা প্রয়োজন। ডিফল্ট মাল্টিকাস্ট অথবা কাস্টম TCP/IP কনফিগারেশন ব্যবহার করে সহজেই Hazelcast ক্লাস্টার তৈরি এবং পরিচালনা করা যেতে পারে। Hazelcast Management Center ব্যবহার করে ক্লাস্টারের অবস্থা এবং কর্মক্ষমতা পর্যবেক্ষণ করা যেতে পারে, এবং এটি ক্লাস্টার স্কেলিং ও ম্যানেজমেন্টের জন্য কার্যকর একটি টুল।
Hazelcast ইনস্টলেশন প্রক্রিয়া খুবই সহজ, এবং এটি বিভিন্ন প্ল্যাটফর্মে কাজ করে, যেমন Windows, Linux এবং MacOS। এই টিউটোরিয়ালে, আমরা প্রতিটি প্ল্যাটফর্মে Hazelcast ইনস্টলেশন ধাপগুলি ধাপে ধাপে আলোচনা করব।
Hazelcast Java ভিত্তিক একটি অ্যাপ্লিকেশন, তাই আপনাকে Java Development Kit (JDK) ইনস্টল করতে হবে।
java -version
টাইপ করুন।start.sh
বা start.bat
স্ক্রিপ্টটি চালান। (Windows-এ .bat
ফাইল)কমান্ড প্রম্পটে টাইপ করুন:
cd hazelcast/bin
start.bat
5701
).Ubuntu/Debian:
sudo apt update
sudo apt install openjdk-11-jdk
CentOS/Fedora:
sudo yum install java-11-openjdk-devel
Java ইনস্টলেশন পরীক্ষা করুন:
java -version
Hazelcast ডাউনলোড করুন:
wget https://download.hazelcast.com/download.jsp?version=latest
ফাইল এক্সট্রাক্ট করুন:
tar -xvzf hazelcast-*.tar.gz
cd hazelcast-*/
Hazelcast চালানো:
./bin/start.sh
5701
).Java ইনস্টল করুন:
brew install openjdk@11
Java ইনস্টলেশন পরীক্ষা করুন:
java -version
Hazelcast Download Page থেকে ZIP ফাইল ডাউনলোড করুন অথবা wget
কমান্ড ব্যবহার করুন:
wget https://download.hazelcast.com/download.jsp?version=latest
ফাইল এক্সট্রাক্ট করুন:
unzip hazelcast-*.zip
cd hazelcast-*/
Hazelcast চালানো:
./bin/start.sh
5701
).Hazelcast ইনস্টলেশন শেষে, আপনি Hazelcast Management Center ব্যবহার করতে পারবেন যেটি Hazelcast ক্লাস্টার এবং ডেটা স্ট্রাকচার ম্যানেজ করার জন্য একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) প্রদান করে।
Management Center চালু করুন:
./bin/start.sh
এটি ডিফল্টভাবে http://localhost:8080
এ চালু হবে।
Hazelcast ইনস্টলেশন খুবই সহজ এবং এটি সমস্ত প্রধান প্ল্যাটফর্ম যেমন Windows, Linux, এবং MacOS-এ সমর্থিত। আপনাকে Java ইনস্টল করতে হবে এবং এরপর Hazelcast ডাউনলোড করে সহজেই সেটআপ করতে হবে। Hazelcast-এর সার্ভার চালু হলে, আপনি ক্লাস্টার ম্যানেজমেন্ট এবং ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার পরিচালনা করতে পারবেন।
Hazelcast একটি ইন-মেমরি ডিস্ট্রিবিউটেড ডেটা গ্রিড এবং ডিস্ট্রিবিউটেড কম্পিউটিং প্ল্যাটফর্ম যা ডেটা স্টোরেজ, ক্যাশিং, এবং ক্লাস্টার পরিচালনার জন্য ব্যবহৃত হয়। একটি Hazelcast ক্লাস্টার সেটআপ করার মাধ্যমে একাধিক নোডে ডেটা ভাগ করা এবং সেই ডেটার উপর কার্যক্রম পরিচালনা করা সম্ভব হয়। Hazelcast ক্লাস্টার সেটআপ করার প্রক্রিয়াটি খুবই সরল, এবং এটি TCP/IP, Multicast, বা Kubernetes এর মাধ্যমে করা যেতে পারে।
এই টিউটোরিয়ালে, আমরা Hazelcast ক্লাস্টার সেটআপ এর ধাপগুলো এবং তার কনফিগারেশন পদ্ধতিগুলি আলোচনা করব।
Hazelcast ক্লাস্টার সেটআপের জন্য মূলত দুইটি পদ্ধতি রয়েছে: TCP/IP এবং Multicast। ক্লাস্টারগুলির মধ্যে যোগাযোগ সঠিকভাবে পরিচালনা করার জন্য এই দুটি পদ্ধতির মধ্যে যেকোনো একটি নির্বাচন করা যেতে পারে।
Hazelcast-এ TCP/IP ব্যবহার করে ক্লাস্টার সেটআপ করার জন্য আপনাকে ক্লাস্টারের নোডগুলি একটি নির্দিষ্ট IP ঠিকানা অথবা হোস্টনেম দ্বারা চিহ্নিত করতে হবে। TCP/IP পদ্ধতি বেশি নির্ভরযোগ্য এবং বিভিন্ন পরিবেশে কার্যকরী।
import com.hazelcast.config.Config;
import com.hazelcast.config.NetworkConfig;
import com.hazelcast.config.JoinConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
public class TcpIpClusterSetup {
public static void main(String[] args) {
Config config = new Config();
// Enable TCP/IP
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig joinConfig = networkConfig.getJoin();
joinConfig.getMulticastConfig().setEnabled(false); // Disable Multicast
joinConfig.getTcpIpConfig().setEnabled(true)
.addMember("192.168.1.100") // Add other cluster members here
.addMember("192.168.1.101");
// Start Hazelcast instance
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
System.out.println("Hazelcast instance started with TCP/IP clustering");
}
}
কনফিগারেশন ব্যাখ্যা:
joinConfig.getTcpIpConfig().setEnabled(true)
: TCP/IP ক্লাস্টারিং সক্রিয় করে।.addMember("192.168.1.100")
: ক্লাস্টারের সদস্য হিসেবে নির্দিষ্ট IP অ্যাড্রেস যোগ করা হয়।getMulticastConfig().setEnabled(false)
: Multicast বন্ধ করা হয়, যেহেতু আমরা TCP/IP ব্যবহার করছি।ক্লাস্টারের সদস্যদের মধ্যে কমিউনিকেশন নিশ্চিত করার জন্য একই কনফিগারেশনটি বিভিন্ন হোস্টে রান করতে হবে। প্রতিটি হোস্টের IP ঠিকানা উল্লেখ করতে হবে।
Multicast পদ্ধতি দিয়ে ক্লাস্টারের নোডগুলি স্বয়ংক্রিয়ভাবে একে অপরকে সনাক্ত করে, এটি সাধারণত ছোট বা পরীক্ষামূলক ক্লাস্টারগুলির জন্য উপযুক্ত। তবে এটি নির্দিষ্ট নেটওয়ার্ক কনফিগারেশনে সীমাবদ্ধ থাকতে পারে (যেমন নেটওয়ার্কের ফায়ারওয়াল বা NAT বাধা)।
import com.hazelcast.config.Config;
import com.hazelcast.config.NetworkConfig;
import com.hazelcast.config.JoinConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
public class MulticastClusterSetup {
public static void main(String[] args) {
Config config = new Config();
// Enable Multicast
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig joinConfig = networkConfig.getJoin();
joinConfig.getMulticastConfig().setEnabled(true); // Enable Multicast
joinConfig.getTcpIpConfig().setEnabled(false); // Disable TCP/IP
// Start Hazelcast instance
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
System.out.println("Hazelcast instance started with Multicast clustering");
}
}
কনফিগারেশন ব্যাখ্যা:
joinConfig.getMulticastConfig().setEnabled(true)
: Multicast ক্লাস্টারিং সক্রিয় করা হয়েছে।joinConfig.getTcpIpConfig().setEnabled(false)
: TCP/IP নিষ্ক্রিয় করা হয়েছে, যাতে শুধুমাত্র Multicast ব্যবহৃত হয়।Hazelcast ক্লাস্টারের সদস্যরা নিজেদের IP ঠিকানা সনাক্ত করতে Multicast ব্যবহার করে একে অপরের সাথে সংযুক্ত হয়।
Hazelcast Kubernetes-এ ব্যবহারের জন্যও আদর্শ। Kubernetes এ নোডগুলো অটোমেটিকভাবে একে অপরকে সনাক্ত করতে পারে এবং Hazelcast সিস্টেমটি ডাইনামিকভাবে স্কেল করতে পারে। Hazelcast ক্লাস্টার কনফিগার করতে Kubernetes এর জন্য hazelcast-kubernetes
কনফিগারেশন সেটআপ করতে হয়।
Hazelcast Kubernetes সেটআপের জন্য আপনাকে hazelcast-kubernetes
কনফিগারেশন ফাইল এবং Helm chart ব্যবহার করতে হবে।
Hazelcast এর Management Center হল একটি গ্রাফিকাল ইউজার ইন্টারফেস (GUI), যা ক্লাস্টারের নোড এবং ডেটা স্ট্রাকচার ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি ক্লাস্টারের পারফরম্যান্স মনিটরিং এবং ডায়াগনস্টিকসের জন্য সহায়ক।
start.sh
বা start.bat
ফাইলটি রান করুন। তারপর আপনার ওয়েব ব্রাউজারে http://localhost:8080
এ গিয়ে ক্লাস্টারের তথ্য দেখতে পারবেন।Hazelcast ক্লাস্টারের health monitoring এবং performance metrics গুরুত্বপূর্ণ। Hazelcast JMX (Java Management Extensions) এবং Prometheus integration এর মাধ্যমে এই কাজটি করতে সাহায্য করে।
// Enable JMX for monitoring
Config config = new Config();
config.getManagementCenterConfig().setEnabled(true).setUrl("http://localhost:8080");
এটি Management Center এর মাধ্যমে আপনার ক্লাস্টারের স্বাস্থ্য এবং পারফরম্যান্স পর্যালোচনা করার সুযোগ দেয়।
Hazelcast ক্লাস্টার সেটআপ করার জন্য দুটি মূল পদ্ধতি হল TCP/IP এবং Multicast। TCP/IP পদ্ধতি বেশি নির্ভরযোগ্য এবং বিভিন্ন প্ল্যাটফর্মে কার্যকরী, যেখানে Multicast পদ্ধতি সাধারণত ছোট ক্লাস্টারগুলির জন্য উপযুক্ত। Hazelcast এর Management Center এবং JMX পদ্ধতির মাধ্যমে ক্লাস্টারের স্বাস্থ্য এবং পারফরম্যান্স মনিটর করা যায়। এছাড়া, Kubernetes-এ Hazelcast ক্লাস্টার সেটআপের মাধ্যমে ডাইনামিক এবং স্কেলেবল সিস্টেম তৈরি করা যায়।
Hazelcast Management Center (Hazelcast MC) একটি গ্রাফিকাল ইউজার ইন্টারফেস (GUI) যা Hazelcast ক্লাস্টারের পরিচালনা, পর্যবেক্ষণ এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি Hazelcast ইনস্ট্যান্সের অবস্থা দেখতে, পারফরম্যান্স ট্র্যাক করতে এবং বিভিন্ন কনফিগারেশন সেটিংস পরিচালনা করতে সহায়ক।
Hazelcast Management Center ব্যবহার করে আপনি সহজেই ক্লাস্টারের বিভিন্ন মেট্রিকস দেখতে পারবেন এবং ক্লাস্টারের কার্যকারিতা উন্নত করতে বিভিন্ন সেটিংস কনফিগার করতে পারবেন।
Hazelcast Management Center কনফিগার করতে নিচের স্টেপগুলো অনুসরণ করতে হবে:
bin
ফোল্ডারে Management Center স্ক্রিপ্ট ফাইল পাবেন।Windows:
bin\start.bat
Linux/MacOS:
bin/start.sh
http://localhost:8080
এ অ্যাক্সেস করতে পারবেন।Hazelcast Management Center কনফিগারেশনে ক্লাস্টারটি যুক্ত করার জন্য আপনাকে কিছু প্রাথমিক কনফিগারেশন করতে হবে।
Hazelcast Instance কনফিগারেশন:
hazelcast.xml
অথবা hazelcast.yaml
) ব্যবহার করুন।management-center-enabled
ফ্ল্যাগটি চালু করতে হবে।উদাহরণস্বরূপ, hazelcast.xml
কনফিগারেশন ফাইলে এটি যুক্ত করুন:
<hazelcast xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hazelcast.com/schema/config
http://www.hazelcast.com/schema/config/hazelcast-config-3.9.xsd">
<management-center enabled="true">
<url>http://localhost:8080</url> <!-- Hazelcast MC URL -->
</management-center>
<!-- অন্যান্য কনফিগারেশন -->
</hazelcast>
Cluster Name কনফিগারেশন:
cluster-name
কনফিগার করা থাকে।উদাহরণ:
<cluster-name>my-cluster</cluster-name>
http://localhost:8080
এ গিয়ে লগইন করতে পারবেন।admin
admin
আপনি লগইন করলে Hazelcast ক্লাস্টার এবং নোডের মেট্রিকস দেখতে পাবেন এবং সেখানে ক্লাস্টারের অবস্থা, পারফরম্যান্স, এবং অন্যান্য গুরুত্বপূর্ণ ডেটা বিশ্লেষণ করতে পারবেন।
Hazelcast Management Center একটি শক্তিশালী টুল যা Hazelcast ক্লাস্টার এবং ইনস্ট্যান্সগুলির পর্যবেক্ষণ এবং কনফিগারেশনের জন্য ব্যবহৃত হয়। এটি আপনাকে ক্লাস্টার সম্পর্কিত ডেটা এবং পারফরম্যান্স ট্র্যাক করতে সহায়ক এবং বিভিন্ন কনফিগারেশন সেটিংস সহজেই পরিচালনা করতে সক্ষম করে।
Hazelcast একটি শক্তিশালী ডিস্ট্রিবিউটেড কম্পিউটিং প্ল্যাটফর্ম যা Java, Python, C#, এবং অন্যান্য ভাষায় ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার এবং ইন-মেমরি ক্যাশিং সরবরাহ করে। Hazelcast এর সাথে IDE ইন্টিগ্রেশন উন্নত ডেভেলপমেন্ট প্রক্রিয়া এবং সহজ ডিবাগিং ও টেস্টিং সুবিধা প্রদান করে। এখানে Eclipse এবং IntelliJ IDEA এর সাথে Hazelcast ইন্টিগ্রেশন কিভাবে করা হয় তা বিস্তারিতভাবে আলোচনা করা হলো।
Eclipse একটি জনপ্রিয় ওপেন সোর্স IDE যা Java ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। Hazelcast-এর সাথে Eclipse ইন্টিগ্রেট করার জন্য আপনাকে Hazelcast লাইব্রেরি বা ডিপেনডেন্সি যোগ করতে হবে।
File > New > Java Project
এ যান এবং প্রকল্পের নাম দিন।Build Path > Configure Build Path
নির্বাচন করুন।Libraries
ট্যাব থেকে Add External JARs
ক্লিক করুন এবং ডাউনলোড করা Hazelcast JAR ফাইলটি নির্বাচন করুন।Maven ব্যবহার করে Hazelcast যুক্ত করতে চাইলে pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>5.2.1</version> <!-- সর্বশেষ সংস্করণ -->
</dependency>
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
IMap<String, String> map = hazelcastInstance.getMap("myMap");
map.put("key1", "value1");
IntelliJ IDEA একটি আধুনিক এবং শক্তিশালী IDE যা Java ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। Hazelcast এর সাথে IntelliJ IDEA ইন্টিগ্রেট করা অনেক সহজ এবং এটি উন্নত ডিবাগিং ও টেস্টিং সুবিধা প্রদান করে।
Hazelcast ডাউনলোড করুন অথবা Maven ব্যবহার করে যুক্ত করুন।
pom.xml
ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন:<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>5.2.1</version>
</dependency>
File > Project Structure > Libraries
এ গিয়ে Hazelcast JAR ফাইল নির্বাচন করুন।HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
IMap<String, String> map = hazelcastInstance.getMap("myMap");
map.put("key1", "value1");
IntelliJ IDEA-তে Hazelcast-এর ডিস্ট্রিবিউটেড সিস্টেমগুলোর ডিবাগিং খুবই সহজ। আপনি breakpoints সেট করে ক্লাস্টার এবং ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের আচরণ পর্যবেক্ষণ করতে পারেন।
common.read_more